﻿let defaultConfig = [{
    "ID": 1,
    "MSSQL": "bigint",
    "MySql": "bigint",
    "SQLite": "integer",
    "Oracle": "number(19)",
    "PostregSQL": "bigint",
    "Desc": ""
}, {
    "ID": 2,
    "MSSQL": "binary()",
    "MySql": "binary",
    "SQLite": "integer",
    "Oracle": "raw(1-2000)/blob",
    "PostregSQL": "bytea",
    "Desc": ""
}, {
    "ID": 3,
    "MSSQL": "bit",
    "MySql": "tinyint",
    "SQLite": "integer",
    "Oracle": "number(1)",
    "PostregSQL": "boolean",
    "Desc": ""
}, {
    "ID": 4,
    "MSSQL": "char()",
    "MySql": "char()",
    "SQLite": "integer",
    "Oracle": "char(1-2000)/varchar2(2001-4000)/clob",
    "PostregSQL": "char()",
    "Desc": ""
}, {
    "ID": 5,
    "MSSQL": "date",
    "MySql": "date",
    "SQLite": "integer",
    "Oracle": "date",
    "PostregSQL": "date",
    "Desc": ""
}, {
    "ID": 6,
    "MSSQL": "datetime",
    "MySql": "datetime",
    "SQLite": "integer",
    "Oracle": "date",
    "PostregSQL": "timestamp",
    "Desc": ""
}, {
    "ID": 7,
    "MSSQL": "datetime2",
    "MySql": "datetime",
    "SQLite": "integer",
    "Oracle": "timestamp(7)",
    "PostregSQL": "timestamp",
    "Desc": ""
}, {
    "ID": 8,
    "MSSQL": "datetimeoffset()",
    "MySql": "datetime",
    "SQLite": "integer",
    "Oracle": "timestamp(7)",
    "PostregSQL": "timestamp",
    "Desc": ""
}, {
    "ID": 9,
    "MSSQL": "decimal(,)",
    "MySql": "decimal(,)",
    "SQLite": "integer",
    "Oracle": "number(,)",
    "PostregSQL": "decimal(,)",
    "Desc": ""
}, {
    "ID": 10,
    "MSSQL": "float",
    "MySql": "float",
    "SQLite": "integer",
    "Oracle": "float",
    "PostregSQL": "double",
    "Desc": ""
}, {
    "ID": 11,
    "MSSQL": "int",
    "MySql": "int",
    "SQLite": "integer",
    "Oracle": "number(10)",
    "PostregSQL": "integer",
    "Desc": ""
}, {
    "ID": 12,
    "MSSQL": "money",
    "MySql": "float",
    "SQLite": "integer",
    "Oracle": "number(19,4)",
    "PostregSQL": "numeric(19,4)",
    "Desc": ""
}, {
    "ID": 13,
    "MSSQL": "nchar()",
    "MySql": "char()",
    "SQLite": "integer",
    "Oracle": "char(1-1000)/nclob",
    "PostregSQL": "varchar()",
    "Desc": ""
}, {
    "ID": 14,
    "MSSQL": "ntext",
    "MySql": "text",
    "SQLite": "integer",
    "Oracle": "nclob",
    "PostregSQL": "text",
    "Desc": ""
}, {
    "ID": 15,
    "MSSQL": "numeric(,)",
    "MySql": "decimal(,)",
    "SQLite": "integer",
    "Oracle": "number",
    "PostregSQL": "decimal(,)",
    "Desc": ""
}, {
    "ID": 16,
    "MSSQL": "nvarchar()",
    "MySql": "varchar()",
    "SQLite": "integer",
    "Oracle": "varchar2(1-2000)/nclob",
    "PostregSQL": "varchar()",
    "Desc": ""
}, {
    "ID": 17,
    "MSSQL": "real",
    "MySql": "float",
    "SQLite": "integer",
    "Oracle": "real",
    "PostregSQL": "real",
    "Desc": ""
}, {
    "ID": 18,
    "MSSQL": "smalldatetime",
    "MySql": "datetime",
    "SQLite": "integer",
    "Oracle": "date",
    "PostregSQL": "timestamp",
    "Desc": ""
}, {
    "ID": 19,
    "MSSQL": "smallint",
    "MySql": "smallint",
    "SQLite": "integer",
    "Oracle": "number(5)",
    "PostregSQL": "smallint",
    "Desc": ""
}, {
    "ID": 20,
    "MSSQL": "smallmoney",
    "MySql": "float",
    "SQLite": "integer",
    "Oracle": "number(10,4)",
    "PostregSQL": "numeric(10,4)",
    "Desc": ""
}, {
    "ID": 21,
    "MSSQL": "text",
    "MySql": "text",
    "SQLite": "integer",
    "Oracle": "clob",
    "PostregSQL": "text",
    "Desc": ""
}, {
    "ID": 22,
    "MSSQL": "time()",
    "MySql": "time",
    "SQLite": "integer",
    "Oracle": "varchar(16)",
    "PostregSQL": "time()",
    "Desc": ""
}, {
    "ID": 23,
    "MSSQL": "timestamp",
    "MySql": "timestamp",
    "SQLite": "integer",
    "Oracle": "raw(8)",
    "PostregSQL": "bigint",
    "Desc": ""
}, {
    "ID": 24,
    "MSSQL": "tinyint",
    "MySql": "tinyint",
    "SQLite": "integer",
    "Oracle": "number(3)",
    "PostregSQL": "smallint",
    "Desc": ""
}, {
    "ID": 25,
    "MSSQL": "uniqueidentifier",
    "MySql": "varchar(40)",
    "SQLite": "integer",
    "Oracle": "char(40)",
    "PostregSQL": "smallint",
    "Desc": ""
}, {
    "ID": 26,
    "MSSQL": "varbinary()",
    "MySql": "varbinary()",
    "SQLite": "integer",
    "Oracle": "raw(1-2000)/clob",
    "PostregSQL": "bytea",
    "Desc": ""
}, {
    "ID": 27,
    "MSSQL": "varchar()",
    "MySql": "varchar()",
    "SQLite": "integer",
    "Oracle": "varchar2(1-4000)/clob",
    "PostregSQL": "varchar()",
    "Desc": ""
}, {
    "ID": 28,
    "MSSQL": "xml",
    "MySql": "text",
    "SQLite": "integer",
    "Oracle": "nclob",
    "PostregSQL": "text",
    "Desc": ""
}];

const defaultConfigKey = 'defaultConfigKey-Key';

function setLocalConfig() {
    window.localStorage.setItem(defaultConfigKey, JSON.stringify(defaultConfig));
}

/** 读取本地缓存的配置, 如果没有, 则用defaultConfig默认配置 */
function getLocalConfig() {
    const isOld = window.localStorage.getItem('olddefaultConfigKey');
    if (!isOld) {
        window.localStorage.setItem('olddefaultConfigKey', '1');
        setLocalConfig();
    }
    const localConfig = window.localStorage.getItem(defaultConfigKey);
    if (localConfig) {
        defaultConfig = JSON.parse(localConfig);
    }
}
getLocalConfig();